go/types.operand.expr (field)
79 uses
go/types (current package)
assignments.go#L87: check.updateExprVal(x.expr, val)
assignments.go#L91: check.updateExprType(x.expr, newType, false)
assignments.go#L234: if sel, ok := x.expr.(*ast.SelectorExpr); ok {
assignments.go#L238: check.errorf(&x, UnaddressableFieldAssign, "cannot assign to struct field %s in map", ExprString(x.expr))
assignments.go#L242: check.errorf(&x, UnassignableOperand, "cannot assign to %s (neither addressable nor a map index expression)", x.expr)
builtins.go#L604: check.errorf(a, MismatchedTypes, invalidArg+"mismatched types %s (previous argument) and %s (type of %s)", x.typ, a.typ, a.expr)
builtins.go#L630: check.updateExprType(a.expr, x.typ, true)
call.go#L40: x.expr = ix.orig // if we don't have an index expression, keep the existing expression of x
call.go#L104: args = []*operand{{mode: value, expr: expr, typ: T.sig}}
call.go#L126: sig = check.instantiateSignature(x.Pos(), x.expr, sig, targs, xlist)
call.go#L183: x.expr = call.Fun
call.go#L193: x.expr = call
call.go#L226: x.expr = call
call.go#L235: x.expr = call
call.go#L258: x.expr = call
call.go#L275: x.expr = call
call.go#L286: x.expr = call
call.go#L329: x.expr = call
call.go#L399: x.expr = ix.orig
call.go#L414: resList[i] = &operand{mode: value, expr: e, typ: v.typ}
call.go#L434: x.expr = ix.orig
call.go#L524: at = args[npars].expr // report at first extra argument
call.go#L646: arg.typ = check.instantiateSignature(call.Pos(), arg.expr, asig, targs[j:k], nil) // TODO(gri) provide xlist if possible (partial instantiations)
call.go#L775: x.expr = e
call.go#L824: check.errorf(e.Sel, AmbiguousSelector, "ambiguous selector %s.%s", x.expr, sel)
call.go#L844: check.errorf(e.Sel, MissingFieldOrMethod, "%s.%s undefined (%s)", x.expr, sel, why)
call.go#L857: check.errorf(e.Sel, MissingFieldOrMethod, "%s.%s undefined (type %s has no method %s)", x.expr, sel, x.typ, sel)
call.go#L977: x.expr = e
call.go#L982: x.expr = e
const.go#L45: op := opName(x.expr)
const.go#L302: check.updateExprVal(x.expr, val)
const.go#L306: check.updateExprType(x.expr, newType, false)
conversions.go#L119: check.updateExprType(x.expr, final, true)
errors.go#L304: if x.expr != nil {
errors.go#L306: return posSpan{pos, pos, x.expr.End()}
expr.go#L185: x.expr = e
expr.go#L186: check.overflow(x, opPos(x.expr))
expr.go#L570: check.updateExprType(x.expr, Default(x.typ), true)
expr.go#L571: check.updateExprType(y.expr, Default(y.typ), true)
expr.go#L598: check.errorf(x, code, "invalid case %s in switch on %s (%s)", x.expr, y.expr, cause) // error position always at 1st operand
expr.go#L600: check.errorf(errOp, code, invalidOp+"%s %s %s (%s)", x.expr, op, y.expr, cause)
expr.go#L710: x.expr = e
expr.go#L711: check.overflow(x, opPos(x.expr))
expr.go#L736: if info, found := check.untyped[x.expr]; found {
expr.go#L738: check.untyped[x.expr] = info
expr.go#L790: x.expr = y.expr
expr.go#L864: x.expr = e
expr.go#L1012: check.errorf(x.expr, WrongTypeArgCount, "cannot use generic %s %s without instantiation", what, x.expr)
expr.go#L1060: x.expr = e
expr.go#L1150: x.expr = e
expr.go#L1180: x.expr = e
expr.go#L1185: x.expr = e
expr.go#L1278: list[i] = &operand{mode: value, expr: e, typ: v.typ}
expr.go#L1286: x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
index.go#L101: x.expr = e.orig
index.go#L175: x.expr = e.orig
infer.go#L134: err.addf(arg, "type %s of %s does not match %s (cannot infer %s)", targ, arg.expr, tpar, typeParamsString(tparams))
infer.go#L147: err.addf(arg, "inferred type %s for %s does not match type %s of %s", inferred, tpar, targ, arg.expr)
infer.go#L149: err.addf(arg, "type %s of %s does not match inferred type %s for %s", targ, arg.expr, inferred, tpar)
infer.go#L152: err.addf(arg, "type %s of %s does not match %s", targ, arg.expr, tpar)
literals.go#L79: x.expr = e // make sure that check.overflow below has an error position
literals.go#L80: check.overflow(x, opPos(x.expr))
operand.go#L61: expr ast.Expr
operand.go#L71: if x.expr == nil {
operand.go#L74: return x.expr.Pos()
operand.go#L135: if x.expr != nil {
operand.go#L136: expr = ExprString(x.expr)
range.go#L58: expr: rangeVar,
range.go#L141: y.expr = lhs // we don't have a better rhs expression to use here
range.go#L182: y.expr = lhs // we don't have a better rhs expression to use here
recording.go#L34: assert(x.expr != nil && typ != nil)
recording.go#L39: check.rememberUntyped(x.expr, false, x.mode, typ.(*Basic), val)
recording.go#L41: check.recordTypeAndValue(x.expr, x.mode, typ, val)
stmt.go#L649: x.expr = &ast.Ident{NamePos: s.Body.Lbrace, Name: "true"}
typexpr.go#L23: x.expr = e